#ifndef MENSAJE_H_
#define MENSAJE_H_

#include <stdio.h>
#include <string.h>
#include <iostream>
#include "TipoMensaje.h"
#include "../utils/FuncionesComunes.h"

using namespace std;

class Mensaje {
private:
	int idCliente;
	int idConversacion;
	string src;
	string dest;
	TipoMensaje tipo;
	string mensaje;

	void parsear(string buffer);

public:
	Mensaje();
	Mensaje(const Mensaje &);
	Mensaje(char *buffer);
	Mensaje(string src, string dest, TipoMensaje tipo, string mensaje);
	string toString();
	virtual ~Mensaje();

	Mensaje operator=(const Mensaje m);

    string getDest() const;
    int getIdCliente();
    int getIdConversacion();
    string getMensaje() const;
    string getSrc() const;
    TipoMensaje getTipo() const;
    void setDest(string dest);
    void setIdCliente(int id);
    void setIdConversacion(int id);
    void setMensaje(string mensaje);
    void setSrc(string src);
    void setTipo(TipoMensaje tipo);
};

#endif /* MENSAJE_H_ */
